﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;

namespace Kyoh.Lib.WinForms
{
    /// <summary>画像付文字列クラス。</summary>
    [TypeConverter]
    public class IconText : IComparable<IconText>
    {
        private static IconTextComparer _comparer = new IconTextComparer();
        /// <summary>画像を取得または設定します。</summary>
        public Image Icon { get; set; }
        /// <summary>文字列を取得または設定します。</summary>
        public string Text { get; set; }
        /// <summary>他の<see cref="IconText"/> と比較します。</summary>
        /// <param name="other">比較対象の <see cref="IconText"/></param>
        public int CompareTo(IconText other)
        {
            return _comparer.Compare(this, other);
        }
    }

    /// <summary><see cref="IconText"/> の比較をサポートします。</summary>
    public class IconTextComparer : IComparer<IconText>
    {
        /// <summary><see cref="IconText"/> を比較します。</summary>
        public int Compare(IconText x, IconText y)
        {
            if (x == null)
                return y == null ? 0 : -1;
            if (y == null)
                return 1;
            return string.Compare(x.Text, y.Text);
        }
    }
}
